#pragma once

#include <list>

namespace a2d
{
//------------------------------------------------------------------

	class InputListener;

	class InputMgr
	{
	public:
		void Init();
		void Close();
		void AddListener(InputListener *Listener);

		void MouseButton(int button, int action, int mods);
		void CursorPosition(double x, double y);
		void MouseScroll(double x, double y);

		void Key(int key, int scancode, int action, int mods);
		void Char(unsigned int codepoint);
		void CharMode(unsigned int codepoint, int mods);

	private:
		std::list<InputListener*> m_Listener;
	};

//------------------------------------------------------------------
} // namespace a2d
